include protocol PTestDescSub;
include protocol PTestDescSubsub;

namespace mozilla {
namespace _ipdltest {

intr protocol PTestDesc {
    manages PTestDescSub; 
child:
    intr PTestDescSub(nullable PTestDescSubsub dummy);

    async Test(PTestDescSubsub a);

    async __delete__();

parent:
    async Ok(PTestDescSubsub a);


state CONSTRUCT:
    call PTestDescSub goto TEST;
state TEST:
    send Test goto ACK;
state ACK:
    recv Ok goto DEAD;
state DEAD:
    send __delete__;
};

}
}
